is_tridiagonal Function

public function is_tridiagonal(A) result(is_tridiag)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), DIMENSION(:, :) :: A

Return Value logical


Source Code

    FUNCTION is_tridiagonal(A) RESULT(is_tridiag)
        REAL(dp), DIMENSION(:, :), INTENT(IN) :: A
        LOGICAL :: is_tridiag
        INTEGER :: i, j, N

        N = SIZE(A, 1)
        is_tridiag = .TRUE.

        DO i = 1, N
            DO j = 1, N
                IF (ABS(i-j) > 1) THEN
                    IF (ABS(A(i,j)) > epsi) THEN
                        is_tridiag = .FALSE.
                        RETURN
                    END IF
                END IF
            END DO
        END DO

    END FUNCTION is_tridiagonal